package pe.gob.onpe.facade.remote;

import java.util.List;
import javax.ejb.Remote;

import pe.gob.onpe.ejb.RegistroLinea;
import pe.gob.onpe.ejb.id.RegistroLineaId;


/**
 * Remote interface for RegistroLineaFacade.
 * 
 * @author MyEclipse Persistence Tools
 */
@Remote
public interface RegistroLineaFacadeRemote {
	/**
	 * Perform an initial save of a previously unsaved RegistroLinea entity. All
	 * subsequent persist actions of this entity should use the #update()
	 * method.
	 * 
	 * @param entity
	 *            RegistroLinea entity to persist
	 * @throws RuntimeException
	 *             when the operation fails
	 */
	public void save(RegistroLinea entity);

	/**
	 * Delete a persistent RegistroLinea entity.
	 * 
	 * @param entity
	 *            RegistroLinea entity to delete
	 * @throws RuntimeException
	 *             when the operation fails
	 */
	public void delete(RegistroLinea entity);

	/**
	 * Persist a previously saved RegistroLinea entity and return it or a copy
	 * of it to the sender. A copy of the RegistroLinea entity parameter is
	 * returned when the JPA persistence mechanism has not previously been
	 * tracking the updated entity.
	 * 
	 * @param entity
	 *            RegistroLinea entity to update
	 * @returns RegistroLinea the persisted RegistroLinea entity instance, may
	 *          not be the same
	 * @throws RuntimeException
	 *             if the operation fails
	 */
	public RegistroLinea update(RegistroLinea entity);

	public RegistroLinea findById(RegistroLineaId id);

	/**
	 * Find all RegistroLinea entities with a specific property value.
	 * 
	 * @param propertyName
	 *            the name of the RegistroLinea property to query
	 * @param value
	 *            the property value to match
	 * @param rowStartIdxAndCount
	 *            Optional int varargs. rowStartIdxAndCount[0] specifies the the
	 *            row index in the query result-set to begin collecting the
	 *            results. rowStartIdxAndCount[1] specifies the the maximum
	 *            count of results to return.
	 * @return List<RegistroLinea> found by query
	 */
	public List<RegistroLinea> findByProperty(String propertyName,
			Object value, int... rowStartIdxAndCount);

	public List<RegistroLinea> findByDireccion(Object direccion,
			int... rowStartIdxAndCount);

	public List<RegistroLinea> findByCorreoelectronico(
			Object correoelectronico, int... rowStartIdxAndCount);

	public List<RegistroLinea> findByNumeronip(Object numeronip,
			int... rowStartIdxAndCount);

	public List<RegistroLinea> findByNumerointentovotacion(
			Object numerointentovotacion, int... rowStartIdxAndCount);

	public List<RegistroLinea> findByEmitiovoto(Object emitiovoto,
			int... rowStartIdxAndCount);

	public List<RegistroLinea> findByContrasena(Object contrasena,
			int... rowStartIdxAndCount);

	public List<RegistroLinea> findByEstadoinscripcion(
			Object estadoinscripcion, int... rowStartIdxAndCount);

	/**
	 * Find all RegistroLinea entities.
	 * 
	 * @param rowStartIdxAndCount
	 *            Optional int varargs. rowStartIdxAndCount[0] specifies the the
	 *            row index in the query result-set to begin collecting the
	 *            results. rowStartIdxAndCount[1] specifies the the maximum
	 *            count of results to return.
	 * @return List<RegistroLinea> all RegistroLinea entities
	 */
	public List<RegistroLinea> findAll(int... rowStartIdxAndCount);
}